(PHP 5)
array_udiff — Computa la diferencia entre matrices, usando una llamada de retorno para la comparación de datos
Computa la diferencia de las matrices usando una función tipo llamada de retorno para la comparación de datos. Esto difiere de array_diff(), la cual usa una función interna para la comparación de datos.
La primera matriz.
La segunda matriz.
La función llamada de retorno para la comparación.
La llamada de retorno especificada por el usuario es usada para la comparación. Esta función debe devolver un entero menor que, igual, o mayor que cero si el primer argumento es considerado como menor, igual, o mayor que el segundo, respectivamente.
Devuelve una matriz que contiene todos los valores de matriz1 que no están presentes en ninguno de los otros argumentos.
Example #1 Ejemplo de array_udiff()
<?php
class cr {
private $miembro_privado;
function cr($val)
{
$this->miembro_privado = $val;
}
static function func_comp_cr($a, $b)
{
if ($a->miembro_privado === $b->miembro_privado) return 0;
return ($a->miembro_privado > $b->miembro_privado)? 1:-1;
}
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);
$resultado = array_udiff($a, $b, array("cr", "func_comp_cr"));
print_r($resultado);
?>
El resultado del ejemplo seria:
Array
(
[0.5] => cr Object
(
[miembro_privado:private] => 12
)
[0] => cr Object
(
[miembro_privado:private] => 23
)
)
Note: Por favor note que esta función sólo analiza una dimensión de una matriz n-dimensional. Por supuesto, puede analizar dimensiones más profundas usando array_udiff($matriz1[0], $matriz2[0], "data_compare_func");.